package io.polly.common.constant;

import lombok.Getter;

/**
 * @author ldz
 * @version V1.0
 * @title: QueueTypeEnum
 * @description: TODO(用一句话描述该文件做什么)
 * @date: 2022/3/18 21:25
 */
@Getter
public enum QueueTypeEnum {

    //是一个基于数组结构的有界阻塞队列，此队列按 FIFO（先进先出）原则对元素进行排序
    ARRAY_BLOCKING_QUEUE("ArrayBlockingQueue"),

    //一个基于链表结构的阻塞队列，此队列按FIFO （先进先出） 排序元素，吞吐量通常要高于ArrayBlockingQueue。静态工厂方法Executors.newFixedThreadPool()使用了这个队列
    LINKED_BLOCKING_QUEUE("LinkedBlockingQueue"),

    //一个不存储元素的阻塞队列。每个插入操作必须等到另一个线程调用移除操作，否则插入操作一直处于阻塞状态，吞吐量通常要高于LinkedBlockingQueue，静态工厂方法Executors.newCachedThreadPool使用了这个队列
    SYNCHRONOUS_QUEUE("SynchronousQueue"),

    //一个具有优先级的无限阻塞队列
    PRIORITY_BLOCKING_QUEUE("PriorityBlockingQueue"),;

    private final String name;

    QueueTypeEnum(String name) {
        this.name = name;
    }
}
